import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: xiaotutu
 * Date: 2024-05-31
 * Time: 9:50
 */
public class Test {

    public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ret = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        list.add(1);
        // 先将第一行的1 加进去
        ret.add(list);
        // 之后逐渐加每一行
        for (int i = 1; i < numRows; i++) {
            // 一行一行来写 这代表当前行
            // 第0列的 1
            List<Integer> curRow = new ArrayList<>();
            curRow.add(1);
            // 处理中间数据
            List<Integer> preRow = ret.get(i-1);
            for (int j = 1; j < i; j++) {
                int val = preRow.get(j) + preRow.get(j-1);
                curRow.add(j, val);
            }
            //最后的1
            curRow.add(1);
            ret.add(curRow);
        }
        return ret;
    }

    public static void main(String[] args) {
        List<List<Integer>> list = generate(5);
        System.out.println(list);

    }

    public static List<String> func(String str1, String str2) {
        List<String> ret = new ArrayList<>();
        for (int i = 0; i < str1.length(); i++) {
            char ch = str1.charAt(i);
            if(!str2.contains(ch + "")) {
                ret.add(ch+"");
            }
        }
        return ret;
    }

    public static void main6(String[] args) {
        System.out.println(func("welcome to bit", "come"));
    }

    public static void main5(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("hello");
        System.out.println(list);
    }
    public static void main4(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        // 使用下标+for遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println();
        // 借助foreach遍历
        for (Integer integer : list) {
            System.out.print(integer + " ");
        }
        System.out.println();
        Iterator<Integer> it = list.listIterator();
        while(it.hasNext()){
            System.out.print(it.next() + " ");
        }
        System.out.println();
    }
    public static void main3(String[] args) {
        // ArrayList创建，推荐写法
        // 构造一个空的列表
        List<Integer> list1 = new ArrayList<>();
        // 构造一个具有10个容量的列表
        List<Integer> list2 = new ArrayList<>(10);
        list2.add(1);
        list2.add(2);
        list2.add(3);
        // list2.add("hello"); // 编译失败，List<Integer>已经限定了，list2中只能存储整形元素
        // list3构造好之后，与list中的元素一致
        ArrayList<Integer> list3 = new ArrayList<>(list2);
        // 避免省略类型，否则：任意类型的元素都可以存放，使用时将是一场灾难
        List list4 = new ArrayList();
        list4.add("111");
        list4.add(100);

    }
    public static void main2(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("abc");
        arrayList.add("def");
        arrayList.add("hij");
        arrayList.add("----");
        arrayList.add("hhhiaijd");
        List<String> ret = arrayList.subList(0, 3);
        ret.set(1, "haha");
        System.out.println(ret);

    }
    public static void main1(String[] args) {
        List<String> list = new ArrayList<>();
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("abc");
        arrayList.add("def");
        list.add("hello");
        list.add("world");
        list.add("你好");
        list.add("earth");
        list.add(1, "structure");
        list.addAll(arrayList);
//      list.remove(6);
        list.remove("earth");
        System.out.println(list);
        System.out.println(list.get(1));
        list.set(1, "111");
        System.out.println(list.get(1));
    }
}
